package com.aranandroid.customview.scrollview

import android.animation.Animator
import kotlin.jvm.JvmOverloads
import android.animation.ValueAnimator
import com.aranandroid.customview.scrollview.SwipeMenuStateListener
import android.view.View.MeasureSpec
import com.aranandroid.customview.scrollview.SwipeMenuLayout
import android.animation.ValueAnimator.AnimatorUpdateListener
import android.animation.AnimatorListenerAdapter
import android.content.Context
import android.view.animation.OvershootInterpolator
import android.view.animation.AccelerateInterpolator
import android.content.res.TypedArray
import com.aranandroid.customview.R
import androidx.core.view.NestedScrollingParent
import androidx.core.view.NestedScrollingChild
import androidx.core.view.NestedScrollingParentHelper
import androidx.core.view.NestedScrollingChildHelper
import androidx.swiperefreshlayout.widget.CircularProgressDrawable
import android.util.DisplayMetrics
import androidx.core.content.ContextCompat
import com.blankj.utilcode.util.ScreenUtils
import androidx.core.widget.ListViewCompat
import android.widget.AbsListView
import androidx.core.view.ViewCompat
import androidx.appcompat.widget.AppCompatImageView
import android.graphics.drawable.ShapeDrawable
import android.graphics.drawable.shapes.OvalShape
import android.util.AttributeSet
import android.util.Log
import android.view.*
import android.widget.LinearLayout
import androidx.annotation.*

/*
 *@创建者       L_jp
 *@创建时间     2019/6/8 11:15.
 *@描述
 *
 * 使用方式:
 * 当前这个MySwipeMenuLayout为parentView，
 * childView中第一个view为itemView，后面相继的view为menuView；
 * itemView的宽度不管是AT_MOST还是EXACTLY，都会指定为MySwipeMenuLayout的宽度；
 * 如果MySwipeMenuLayout的宽度为AT_MOST，会以它父view的宽度来测量
 *
 * 禁止侧滑功能 isEnableSwipe设置false
 * 默认左滑打开菜单，想要右滑打开菜单的话 isEnableLeftMenu设置true
 *
 *@更新者         $Author$
 *@更新时间         $Date$
 *@更新描述
 */
class SwipeItemLayout(
    @Nullable mContext: Context?,
    @Nullable attrs: AttributeSet?,
    defStyleAttr: Int = 0
) : LinearLayout(
    mContext, attrs, defStyleAttr
) {
    constructor(@Nullable mContext: Context?, @Nullable attrs: AttributeSet?) : this(
        mContext,
        attrs,
        0
    )

    constructor(@Nullable mContext: Context?) : this(
        mContext,
        null,
        0
    )

}